package cn.wolfcode.trip.base.service;

import cn.wolfcode.trip.base.domain.Integral;
import cn.wolfcode.trip.base.domain.IntegralType;
import cn.wolfcode.trip.base.query.QueryObject;
import com.github.pagehelper.PageInfo;

import java.util.List;
import java.util.Map;

/**
 * Copyright: Copyright (c) 2019 Super520
 * 描述：积分明细服务层接口
 *
 * @package: cn.wolfcode.trip.base.service
 * @author: Patch
 * @date: 2019/5/30 9:51
 * 总结:
 */
public interface IIntegralService {
    /**
     * 新增和更新
     *
     * @param integral 积分明细
     */
    void saveOrUpdate(Integral integral);

    /**
     * 高级查询
     *
     * @param qo 查询对象
     * @return
     */
    PageInfo<Integral> query(QueryObject qo);


    /**
     * 签到
     * @param integral
     */
    void sign(Integral integral);

    /**
     * 查询用户当月签到的天
     *
     * @param month
     * @param integral
     * @return
     */
    List<Map<String,Object>> signDay(Integer month, Integral integral);

    /**
     * 查询说有的获奖名单
     * @return
     */
    List<Integral> selectAll();

    Integer getCount();

    List<Integral> roll(Integral integral);
}
